            -*- html -*-

    NkSIP SIP Application Server


@author Carlos Gonzalez Florido <carlosj.gf@gmail.com>
@copyright 2015 Carlos Gonzalez Florido
@version 0.5.0
@title NkSIP SIP Application Server

@doc NkSIP is an Erlang SIP framework or <i>application server</i>.

NkSIP greatly facilitates the development of robust and scalable server-side SIP applications like proxy, registrar, redirect or outbound servers, B2BUAs, SBCs or load generators. NkSIP takes care of much of the SIP complexity, while allowing full access to requests and responses. 

A single NkSIP instance can start any number of SIP Applications or <b>SipApp</b>, each one listening on a specific set of transports (<i>udp</i>, <i>tcp</i>, <i>tls</i>, <i>sctp</i>, <i>ws</i> or <i>wss</i>), ip addresses and ports. Each SipApp must provide a <i>callback module</i> where it can implement a number of callback functions. All of them are optional, having sane defaults in case they are not implemented.

NkSIP also includes a powerful <b>plugin mechanism</b>, that can be used to modify its behaviour without having to fully understand or modify the core engine, and with virtually zero overhead, even if the SipApp uses a large number of plugins.

NkSIP is not yet production-ready, but it is already very robust, thanks to its OTP design. Also thanks to its Erlang roots it can perform many actions while running: starting and stopping SipApps, hot code upgrades, configuration changes and even updating your application behavior, used plugins and function callbacks <i>on the fly</i>.

NkSIP scales automatically using all of the available cores on the machine. Using common hardware (4-core i7 MacMini), it is easy to get more than 3.000 call cycles (INVITE-ACK-BYE) or 10.000 registrations per second. On the roadmap there is a <b>fully distributed version</b>, based on Riak Core, that will allow you to add and remove nodes while running, scale as much as needed and offer a very high availability, all of it without changing your application.

See <a href="https://github.com/kalta/nksip"><b>GitHub Page</b></a>.
